<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class LoginController extends Controller
{
    public function index() {
        if(auth()->check()){
            return redirect(route('admin.index'));
        }
        
        return view('admin.login.login');
    }

    public function login(Request $request){
        // 表单验证
        $post = $this->validate($request, [
            'username'=>'required',
            'password'=>'required'
        ]);
        // 登录
        $res = auth()->attempt($post);  //获取用户信息，并验证，如果成功则登录，并返回 true
        if($res){
            // 获取权限 这段也可以写进中间件，就不用新增权限重新登录了，但效率不高
            //判断是否是超级管理员
            if (config('rbac.super') != $post['username']) {
                $adminModel = auth()->user();
                $roleModel = $adminModel->role;
                $authArr = [];
                if($roleModel){
                    $authArr = $roleModel->authes()->pluck('route_name','id')->toArray();
                }
                session(['admin.auth' => $authArr]);  //将权限保存到session
            }else{
                session(['admin.auth' => true]); 
            }
            //跳转后台首页
            return redirect(route('admin.index'));
        }
        return redirect(route('admin.login'))->withErrors(['error'=>'登录失败']);
    }
}
